package com.rpframework.module.common.bottom.service;


import com.rpframework.module.common.bottom.entity.Jurisdiction;
import com.rpframework.module.common.bottom.entity.enums.RequestType;
import com.rpframework.module.common.bottom.mapper.JurisdictionMapper;

import java.util.List;


public interface JurisdictionService extends JurisdictionMapper {
    /**
     * 获取头部分的地址的数据库主键
     *
     * @param entity 地址+接口类型
     * @return 没有找到返回NULL
     */
    Long getHeadJurisdictionId(Jurisdiction entity);

    /**
     * 检测URI是否已存在
     *
     * @param uri 地址
     * @return 地址主键
     */
    Long testUriExistence(String uri);

    /**
     * 添加权限包括URI
     *
     * @param entity 实体类
     */
    void add(Jurisdiction entity);

    void adds(List<Jurisdiction> entityList);

    /**
     * 判断此用户是否含有URI权限
     *
     * @param userId 用户逐渐
     * @param uri    地址
     * @return true=有权限
     */
    boolean hasAuth(Long userId, String uri);

    /**
     * 判断此角色是否含有URI权限
     *
     * @param roleId 用户逐渐
     * @param uri    地址
     * @return true=有权限
     */
    boolean hasAuthByRole(Long roleId, String uri);

    /**
     * 检测地址和类型是否存在
     *
     * @param url  地址
     * @param type 类型
     * @return 存在返回主键
     */
    Long[] getUriJurisdictionId(String url, RequestType type);
    /**
     * 检测地址和类型是否存在
     *
     * @param url  地址
     * @param type 类型
     * @return 存在返回主键
     */
    boolean getUriJurisdictionIdExt(String url, RequestType type);
}
